Vinculación de sus propias E/S
Con esta funcionalidad, las E/S locales pueden conectarse a un controlador y utilizarse desde la aplicación IEC.
Edición de la descripción del dispositivo
En el ejemplo UDSIoDrvExample.project
suministrado, se crean dos entradas y salidas con la descripción del dispositivo. Las entradas y salidas se enlazan a través de un Socket de Dominio Unix. Encontrará el ejemplo en el directorio de instalación de CODESYS en el subdirectorio CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv
.

Para definir sus propias entradas y salidas, el archivo de descripción del dispositivo SocketUnixIOTemplate.devdesc.xml
tiene que ser adaptado. un XML parameter
elemento tiene que ser definido para cada una de las entradas y salidas. ParameterId
tiene que ser único aquí dentro del archivo de descripción del dispositivo. Recomendamos simplemente numerar en orden ascendente sin espacios. Ejemplo: 1000 1001 1002 y así sucesivamente: las entradas deben numerarse desde 1000, las salidas desde 2000.
Aviso
Si se modifica la descripción del dispositivo, se debe volver a instalar en el repositorio de dispositivos para que esté disponible en el proyecto.
<Parameter ParameterId="1000" type="std:DWORD"> <Attributes channel="input"/> <Default/> <Name name="local:in1">/Namne> </Parameter>
Nombre | Descripción |
---|---|
ID de parámetro | ID único por el que se llama a la entrada o salida |
escribe | Definición del ancho de la entrada o salida. Se realiza especificando un tipo de datos adecuadamente amplio, como |
canal de atributos |
|
Nombre nombre | Nombre de la entrada o salida respectiva |
Además, se debe asignar el ID del dispositivo, que se define en <DeviceIdentification>
.El rango 0x0001 8000 a 0x0001 80FF se proporciona con este fin para evitar colisiones con los dispositivos existentes.
Importante
La descripción del dispositivo, así como el controlador de E/S subyacente, no deben instanciarse varias veces en un PLC porque el orden de los módulos no es fijo. Esto puede provocar que el controlador de E/S no pueda garantizar la asignación.
Ejemplo de Python
En el ejemplo de Python uds_io_driver.py
, se reciben las salidas y se escriben las entradas del dispositivo. Los parámetros de entrada (salidas IEC) se pasan como tuplas de cadenas (paramType
, paramValue
) con el ID de parámetro de la descripción del dispositivo como índice.
El controlador puede manejar los tipos de datos. USINT
, UINT
, UDINT
, y ULINT
. Otros tipos de datos deben convertirse en un tipo de datos adecuado.
Ejemplo: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}
.Los parámetros de salida están en el mismo formato.
También para el par, un "salida"/parámetro de salida es, sin embargo, un valor de salida que la aplicación IEC debe transportar "hacia afuera" (por ejemplo, escribirlo en GPIO reales). El UDS_IODriver_0
La clase implementada en el ejemplo extiende el ExternalFunctionBase
clase. El nombre de la clase se deriva de UDS_IODriver_
seguido del índice de instancia en orden ascendente. Call()
es necesaria la función, que se llama desde el mecanismo de IEC. Las salidas IEC ahora se pueden evaluar aquí y las entradas IEC se pueden transferir.
Uso de la interfaz solo como miembro de Linux | sí |
Separación de procesos | sí |